From: Adel Gadllah Date: Tue, 25 Sep 2012 19:11:10 +0000 (+0200) Subject: screenShield: Connect to the actor's show signal instead of using BEFORE_REDRAW X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5572 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=bdeb7d86b649cfacfa3f706daac3c78b74f012f4;p=gnome-shell.git screenShield: Connect to the actor's show signal instead of using BEFORE_REDRAW This should make sure that we grab at the right time while at the same time not break focus handling. https://bugzilla.gnome.org/show_bug.cgi?id=684650 --- diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 07e450f8f..e10ef346b 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -579,13 +579,14 @@ const ScreenShield = new Lang.Class({ showDialog: function() { // Ensure that the stage window is mapped, before taking a grab // otherwise X errors out - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { + let actorShownId = 0; + actorShownId = this.actor.connect('show', Lang.bind(this, function() { if (!this._isModal) { Main.pushModal(this.actor); this._isModal = true; } - return false; + this.actor.disconnect(actorShownId); })); this.actor.show();